package org.dbi.logger;
import java.util.logging.Level;
import java.util.logging.LogManager;

/**
 * De logger dient ervoor om berichten te loggen die te maken hebben met het systeem.
 * De data wordt weggeschreven na de sysout of syserr
 * @author  Walter Ebbers
 */
public class ErrorLogger extends java.util.logging.Logger {
	/**
	 * LogManager
	 */
	private static LogManager myManager;

	/**
	 * Logger constructor
	 * 
	 * @param String Naam van de logger
	 */
	private ErrorLogger(String name) {
		super(name, null);
	}
	
	/**
	 * Deze methode is het begin van de class en hier word alles geregeld.
	 * 
	 * @param String Naam van de logger
	 */
	public static synchronized ErrorLogger getLogger(String name) {
		if(myManager == null) {
			myManager = LogManager.getLogManager();
        }

        ErrorLogger logger = (ErrorLogger) myManager.getLogger(name);

        if(logger == null) {
        	logger = new ErrorLogger(name);
        	myManager.addLogger(logger);
        	logger = (ErrorLogger)myManager.getLogger(name);
        	
        	// Alle logs na de sysout wegschrijven.
        	MaxlevelStreamHandler outSh = new MaxlevelStreamHandler(System.out, new LoggerFormatter());
    		outSh.setLevel(Level.ALL);
     		logger.addHandler(outSh);

    		// verwijder de default console handler i.v.m. conflicten
    		logger.setUseParentHandlers(false);     
        
        }
        	
		return logger;
	}
}